class snooperParsersym {
static const int TK_DollarSign = 3;
static const int TK_MINUS_MINUS = 16;
static const int TK_OR = 88;
static const int TK_MINUS = 79;
static const int TK_MINUS_EQUAL = 110;
static const int TK_NOT = 18;
static const int TK_NOT_EQUAL = 89;
static const int TK_REMAINDER = 80;
static const int TK_REMAINDER_EQUAL = 111;
static const int TK_AND = 90;
static const int TK_AND_AND = 91;
static const int TK_AND_EQUAL = 112;
static const int TK_LPAREN = 2;
static const int TK_RPAREN = 75;
static const int TK_MULTIPLY = 81;
static const int TK_MULTIPLY_EQUAL = 113;
static const int TK_COMMA = 15;
static const int TK_DOT = 114;
static const int TK_DIVIDE = 82;
static const int TK_DIVIDE_EQUAL = 115;
static const int TK_COLON = 83;
static const int TK_SEMICOLON = 23;
static const int TK_QUESTION = 24;
static const int TK_AT = 116;
static const int TK_LBRACKET = 96;
static const int TK_RBRACKET = 97;
static const int TK_XOR = 92;
static const int TK_XOR_EQUAL = 117;
static const int TK_LBRACE = 10;
static const int TK_OR_OR = 98;
static const int TK_OR_EQUAL = 118;
static const int TK_RBRACE = 93;
static const int TK_TWIDDLE = 19;
static const int TK_PLUS = 84;
static const int TK_PLUS_PLUS = 17;
static const int TK_PLUS_EQUAL = 119;
static const int TK_LESS = 8;
static const int TK_LEFT_SHIFT = 76;
static const int TK_LESS_EQUAL = 85;
static const int TK_EQUAL = 86;
static const int TK_EQUAL_EQUAL = 94;
static const int TK_GREATER = 78;
static const int TK_GREATER_EQUAL = 87;
static const int TK_RIGHT_SHIFT = 77;
static const int TK_clear = 25;
static const int TK_end = 26;
static const int TK_if = 20;
static const int TK_else = 95;
static const int TK_endif = 99;
static const int TK_call = 11;
static const int TK_return = 102;
static const int TK_exit = 27;
static const int TK_next = 103;
static const int TK_goto = 28;
static const int TK_do = 29;
static const int TK_loop = 104;
static const int TK_for = 21;
static const int TK_to = 100;
static const int TK_step = 105;
static const int TK_hfor = 22;
static const int TK_hnext = 106;
static const int TK_load_script = 30;
static const int TK_loadprofile = 31;
static const int TK_run_script = 32;
static const int TK_timer_begin = 33;
static const int TK_timer_end = 34;
static const int TK_sleep = 35;
static const int TK_pause = 36;
static const int TK_set = 37;
static const int TK_message = 38;
static const int TK___file__ = 39;
static const int TK___line__ = 40;
static const int TK_auto_response = 41;
static const int TK_on = 107;
static const int TK_off = 108;
static const int TK_reset = 42;
static const int TK_reset2 = 43;
static const int TK_clear_fifo = 44;
static const int TK_write_fifo = 45;
static const int TK_upload = 46;
static const int TK_upload2 = 47;
static const int TK_beep = 48;
static const int TK_cold = 101;
static const int TK_eject = 49;
static const int TK_insert = 50;
static const int TK_install = 51;
static const int TK_install_2 = 52;
static const int TK_jcop22_ext_auth = 53;
static const int TK_jcop22_ext_auth_kmc = 54;
static const int TK_jcop22_ext_auth_2 = 55;
static const int TK_jcop22_ext_auth_kmc_2 = 56;
static const int TK_jcop22_ext_auth_nonblock = 57;
static const int TK_select = 58;
static const int TK_select_2 = 59;
static const int TK_delete = 60;
static const int TK_delete_2 = 61;
static const int TK_apdu2 = 62;
static const int TK_prompt = 63;
static const int TK_showapdu = 64;
static const int TK_sw = 6;
static const int TK_des_3des_mac = 12;
static const int TK_full_3des_mac = 13;
static const int TK_mac_auto_mac = 65;
static const int TK_mac_auto_mac_2 = 66;
static const int TK_superlong = 67;
static const int TK_compare = 68;
static const int TK_socket_message = 69;
static const int TK_generate = 70;
static const int TK_sendtext = 71;
static const int TK_split = 72;
static const int TK_push = 73;
static const int TK_let = 74;
static const int TK_EOF_TOKEN = 109;
static const int TK_MACRO_IDENTIFIER = 4;
static const int TK_NUMBER = 7;
static const int TK_CRLF = 1;
static const int TK_HEX_MACRO_PREFIX = 14;
static const int TK_IDENTIFIER = 9;
static const int TK_STRING_LITERAL = 5;
static const int TK_UNSIGNED_RIGHT_SHIFT = 120;
static const int TK_LEFT_SHIFT_EQUAL = 121;
static const int TK_RIGHT_SHIFT_EQUAL = 122;
static const int TK_UNSIGNED_RIGHT_SHIFT_EQUAL = 123;
static const int TK_ELLIPSIS = 124;
static const int TK_MissingExpression = 125;
static const int TK_ERROR_TOKEN = 126;

static const  List<String> orderedTerminalSymbols = [
    '',
    'CRLF',
    'LPAREN',
    'DollarSign',
    'MACRO_IDENTIFIER',
    'STRING_LITERAL',
    'sw',
    'NUMBER',
    'LESS',
    'IDENTIFIER',
    'LBRACE',
    'call',
    'des_3des_mac',
    'full_3des_mac',
    'HEX_MACRO_PREFIX',
    'COMMA',
    'MINUS_MINUS',
    'PLUS_PLUS',
    'NOT',
    'TWIDDLE',
    'if',
    'for',
    'hfor',
    'SEMICOLON',
    'QUESTION',
    'clear',
    'end',
    'exit',
    'goto',
    'do',
    'load_script',
    'loadprofile',
    'run_script',
    'timer_begin',
    'timer_end',
    'sleep',
    'pause',
    'set',
    'message',
    '__file__',
    '__line__',
    'auto_response',
    'reset',
    'reset2',
    'clear_fifo',
    'write_fifo',
    'upload',
    'upload2',
    'beep',
    'eject',
    'insert',
    'install',
    'install_2',
    'jcop22_ext_auth',
    'jcop22_ext_auth_kmc',
    'jcop22_ext_auth_2',
    'jcop22_ext_auth_kmc_2',
    'jcop22_ext_auth_nonblock',
    'select',
    'select_2',
    'delete',
    'delete_2',
    'apdu2',
    'prompt',
    'showapdu',
    'mac_auto_mac',
    'mac_auto_mac_2',
    'superlong',
    'compare',
    'socket_message',
    'generate',
    'sendtext',
    'split',
    'push',
    'let',
    'RPAREN',
    'LEFT_SHIFT',
    'RIGHT_SHIFT',
    'GREATER',
    'MINUS',
    'REMAINDER',
    'MULTIPLY',
    'DIVIDE',
    'COLON',
    'PLUS',
    'LESS_EQUAL',
    'EQUAL',
    'GREATER_EQUAL',
    'OR',
    'NOT_EQUAL',
    'AND',
    'AND_AND',
    'XOR',
    'RBRACE',
    'EQUAL_EQUAL',
    'else',
    'LBRACKET',
    'RBRACKET',
    'OR_OR',
    'endif',
    'to',
    'cold',
    'return',
    'next',
    'loop',
    'step',
    'hnext',
    'on',
    'off',
    'EOF_TOKEN',
    'MINUS_EQUAL',
    'REMAINDER_EQUAL',
    'AND_EQUAL',
    'MULTIPLY_EQUAL',
    'DOT',
    'DIVIDE_EQUAL',
    'AT',
    'XOR_EQUAL',
    'OR_EQUAL',
    'PLUS_EQUAL',
    'UNSIGNED_RIGHT_SHIFT',
    'LEFT_SHIFT_EQUAL',
    'RIGHT_SHIFT_EQUAL',
    'UNSIGNED_RIGHT_SHIFT_EQUAL',
    'ELLIPSIS',
    'MissingExpression',
    'ERROR_TOKEN'
     ];

static const int numTokenKinds  = 126;

static const int RULE_SnooperProg = 1;
static const int RULE_SnooperSegments = 3;
static const int RULE_SnooperSegmentItem = 5;
static const int RULE_ReturnStmt = 7;
static const int RULE_SimpleNameOpt = 8;
static const int RULE_SimpleName = 10;
static const int RULE_FunctionParameterList = 11;
static const int RULE_FunctionParameterListOpt = 13;
static const int RULE_CallSignature = 15;
static const int RULE_CallSignatureOpt = 16;
static const int RULE_FunctionDecl = 18;
static const int RULE_StatementList = 19;
static const int RULE_Statement = 21;
static const int RULE_StatementWithoutTrailingSubstatement = 27;
static const int RULE_IfSeg = 57;
static const int RULE_IfThenStatement = 58;
static const int RULE_ElseSeg = 59;
static const int RULE_IfThenElseStatement = 60;
static const int RULE_ElseIfStatementOpt = 61;
static const int RULE_ElseIfStatementList = 63;
static const int RULE_ElseIfStatementItem = 65;
static const int RULE_EmptyStatement = 66;
static const int RULE_Variable = 68;
static const int RULE_BlockOpt = 70;
static const int RULE_LetOpt = 72;
static const int RULE_VariableStmt = 74;
static const int RULE_PrimaryAssignmentStmt = 75;
static const int RULE_VariableDecl = 76;
static const int RULE_ArrayAccesOnLeftSide = 77;
static const int RULE_ArrayAccessAssignmentStmt = 78;
static const int RULE_DoLoopStmt = 82;
static const int RULE_StepStmOpt = 83;
static const int RULE_NextSegItem = 85;
static const int RULE_ForStmt = 87;
static const int RULE_NextSeg = 88;
static const int RULE_HforStmt = 89;
static const int RULE_HnexSeg = 90;
static const int RULE_NumberLiteral = 91;
static const int RULE_StringLiteral = 92;
static const int RULE_ArrayAccess = 93;
static const int RULE_Primary = 94;
static const int RULE_HexMacroAbleItem = 98;
static const int RULE_ApduData = 101;
static const int RULE_ApduDataList = 105;
static const int RULE_PostfixExpression = 107;
static const int RULE_PostIncrementExpression = 110;
static const int RULE_PostDecrementExpression = 111;
static const int RULE_UnaryExpression = 112;
static const int RULE_PreIncrementExpression = 115;
static const int RULE_PreDecrementExpression = 116;
static const int RULE_UnaryExpressionNotPlusMinus = 117;
static const int RULE_MultiplicativeExpression = 120;
static const int RULE_AdditiveExpression = 124;
static const int RULE_ShiftExpression = 127;
static const int RULE_RelationalExpression = 130;
static const int RULE_EqualityExpression = 135;
static const int RULE_AndExpression = 138;
static const int RULE_ExclusiveOrExpression = 140;
static const int RULE_InclusiveOrExpression = 142;
static const int RULE_ConditionalAndExpression = 144;
static const int RULE_ConditionalOrExpression = 146;
static const int RULE_Expression = 148;
static const int RULE_ExpressionStmt = 149;
static const int RULE_ExpressionOpt = 150;
static const int RULE_VariableAndSW = 152;
static const int RULE_ArgumentList = 154;
static const int RULE_ArgumentListOpt = 156;
static const int RULE_CallOpt = 158;
static const int RULE_FunctionCall = 160;
static const int RULE_ExitStatement = 163;
static const int RULE_LoadOption = 165;
static const int RULE_LoadScriptStmt = 168;
static const int RULE_SimpleOption = 169;
static const int RULE_KeyWordWithoutParameterStmt = 181;
static const int RULE_SleepStmt = 182;
static const int RULE_SetStmt = 183;
static const int RULE_PrintStmt = 185;
static const int RULE_OnOffOption = 187;
static const int RULE_AutoResponseStmt = 189;
static const int RULE_WriteFifoStmt = 190;
static const int RULE_UploadStmt = 192;
static const int RULE_ResetStmt = 194;
static const int RULE_InstallParameter = 198;
static const int RULE_InstallParameterList = 200;
static const int RULE_InstallStmt = 202;
static const int RULE_ParameterItem = 204;
static const int RULE_UtilFunctionParameterList = 208;
static const int RULE_JcopAuthStmt = 210;
static const int RULE_SelectStmt = 215;
static const int RULE_DeleteStmt = 217;
static const int RULE_Apdu2Stmt = 219;
static const int RULE_PromptStmt = 220;
static const int RULE_ShowapduStmt = 221;
static const int RULE_Des_3des_mac_call = 222;
static const int RULE_Des_3des_mac_Stmt = 223;
static const int RULE_Full_3des_mac_call = 224;
static const int RULE_Full_3des_mac_Stmt = 225;
static const int RULE_Mac_auto_mac_option = 226;
static const int RULE_Mac_auto_mac_Stmt = 228;
static const int RULE_LineEndOpt = 229;
static const int RULE_SuperlongStmt = 231;
static const int RULE_MultipleLineApduDataList = 232;
static const int RULE_CompareStmt = 235;
static const int RULE_Socket_messageStmt = 236;
static const int RULE_GenerateStmt = 237;
static const int RULE_SendtextStmt = 238;
static const int RULE_PushStmt = 239;
static const int RULE_GotoStmt = 240;

static const  List<String> orderedRuleNames = [
    '',
    'SnooperProg',
    'SnooperProg',
    'SnooperSegments',
    'SnooperSegments',
    'SnooperSegmentItem',
    'SnooperSegmentItem',
    'ReturnStmt',
    'SimpleNameOpt',
    'SimpleNameOpt',
    'SimpleName',
    'FunctionParameterList',
    'FunctionParameterList',
    'FunctionParameterListOpt',
    'FunctionParameterListOpt',
    'CallSignature',
    'CallSignatureOpt',
    'CallSignatureOpt',
    'FunctionDecl',
    'StatementList',
    'StatementList',
    'Statement',
    'Statement',
    'Statement',
    'Statement',
    'Statement',
    'Statement',
    'StatementWithoutTrailingSubstatement',
    'StatementWithoutTrailingSubstatement',
    'StatementWithoutTrailingSubstatement',
    'StatementWithoutTrailingSubstatement',
    'StatementWithoutTrailingSubstatement',
    'StatementWithoutTrailingSubstatement',
    'StatementWithoutTrailingSubstatement',
    'StatementWithoutTrailingSubstatement',
    'StatementWithoutTrailingSubstatement',
    'StatementWithoutTrailingSubstatement',
    'StatementWithoutTrailingSubstatement',
    'StatementWithoutTrailingSubstatement',
    'StatementWithoutTrailingSubstatement',
    'StatementWithoutTrailingSubstatement',
    'StatementWithoutTrailingSubstatement',
    'StatementWithoutTrailingSubstatement',
    'StatementWithoutTrailingSubstatement',
    'StatementWithoutTrailingSubstatement',
    'StatementWithoutTrailingSubstatement',
    'StatementWithoutTrailingSubstatement',
    'StatementWithoutTrailingSubstatement',
    'StatementWithoutTrailingSubstatement',
    'StatementWithoutTrailingSubstatement',
    'StatementWithoutTrailingSubstatement',
    'StatementWithoutTrailingSubstatement',
    'StatementWithoutTrailingSubstatement',
    'StatementWithoutTrailingSubstatement',
    'StatementWithoutTrailingSubstatement',
    'StatementWithoutTrailingSubstatement',
    'StatementWithoutTrailingSubstatement',
    'IfSeg',
    'IfThenStatement',
    'ElseSeg',
    'IfThenElseStatement',
    'ElseIfStatementOpt',
    'ElseIfStatementOpt',
    'ElseIfStatementList',
    'ElseIfStatementList',
    'ElseIfStatementItem',
    'EmptyStatement',
    'EmptyStatement',
    'Variable',
    'Variable',
    'BlockOpt',
    'BlockOpt',
    'LetOpt',
    'LetOpt',
    'VariableStmt',
    'PrimaryAssignmentStmt',
    'VariableDecl',
    'ArrayAccesOnLeftSide',
    'ArrayAccessAssignmentStmt',
    'VariableDecl',
    'VariableDecl',
    'VariableDecl',
    'DoLoopStmt',
    'StepStmOpt',
    'StepStmOpt',
    'NextSegItem',
    'NextSegItem',
    'ForStmt',
    'NextSeg',
    'HforStmt',
    'HnexSeg',
    'NumberLiteral',
    'StringLiteral',
    'ArrayAccess',
    'Primary',
    'Primary',
    'Primary',
    'Primary',
    'HexMacroAbleItem',
    'HexMacroAbleItem',
    'HexMacroAbleItem',
    'ApduData',
    'ApduData',
    'ApduData',
    'ApduData',
    'ApduDataList',
    'ApduDataList',
    'PostfixExpression',
    'PostfixExpression',
    'PostfixExpression',
    'PostIncrementExpression',
    'PostDecrementExpression',
    'UnaryExpression',
    'UnaryExpression',
    'UnaryExpression',
    'PreIncrementExpression',
    'PreDecrementExpression',
    'UnaryExpressionNotPlusMinus',
    'UnaryExpressionNotPlusMinus',
    'UnaryExpressionNotPlusMinus',
    'MultiplicativeExpression',
    'MultiplicativeExpression',
    'MultiplicativeExpression',
    'MultiplicativeExpression',
    'AdditiveExpression',
    'AdditiveExpression',
    'AdditiveExpression',
    'ShiftExpression',
    'ShiftExpression',
    'ShiftExpression',
    'RelationalExpression',
    'RelationalExpression',
    'RelationalExpression',
    'RelationalExpression',
    'RelationalExpression',
    'EqualityExpression',
    'EqualityExpression',
    'EqualityExpression',
    'AndExpression',
    'AndExpression',
    'ExclusiveOrExpression',
    'ExclusiveOrExpression',
    'InclusiveOrExpression',
    'InclusiveOrExpression',
    'ConditionalAndExpression',
    'ConditionalAndExpression',
    'ConditionalOrExpression',
    'ConditionalOrExpression',
    'Expression',
    'ExpressionStmt',
    'ExpressionOpt',
    'ExpressionOpt',
    'VariableAndSW',
    'VariableAndSW',
    'ArgumentList',
    'ArgumentList',
    'ArgumentListOpt',
    'ArgumentListOpt',
    'CallOpt',
    'CallOpt',
    'FunctionCall',
    'FunctionCall',
    'FunctionCall',
    'ExitStatement',
    'ExitStatement',
    'LoadOption',
    'LoadOption',
    'LoadOption',
    'LoadScriptStmt',
    'SimpleOption',
    'SimpleOption',
    'SimpleOption',
    'SimpleOption',
    'SimpleOption',
    'SimpleOption',
    'SimpleOption',
    'SimpleOption',
    'SimpleOption',
    'SimpleOption',
    'SimpleOption',
    'SimpleOption',
    'KeyWordWithoutParameterStmt',
    'SleepStmt',
    'SetStmt',
    'SetStmt',
    'PrintStmt',
    'PrintStmt',
    'OnOffOption',
    'OnOffOption',
    'AutoResponseStmt',
    'WriteFifoStmt',
    'WriteFifoStmt',
    'UploadStmt',
    'UploadStmt',
    'ResetStmt',
    'ResetStmt',
    'ResetStmt',
    'ResetStmt',
    'InstallParameter',
    'InstallParameter',
    'InstallParameterList',
    'InstallParameterList',
    'InstallStmt',
    'InstallStmt',
    'ParameterItem',
    'ParameterItem',
    'ParameterItem',
    'ParameterItem',
    'UtilFunctionParameterList',
    'UtilFunctionParameterList',
    'JcopAuthStmt',
    'JcopAuthStmt',
    'JcopAuthStmt',
    'JcopAuthStmt',
    'JcopAuthStmt',
    'SelectStmt',
    'SelectStmt',
    'DeleteStmt',
    'DeleteStmt',
    'Apdu2Stmt',
    'PromptStmt',
    'ShowapduStmt',
    'Des_3des_mac_call',
    'Des_3des_mac_Stmt',
    'Full_3des_mac_call',
    'Full_3des_mac_Stmt',
    'Mac_auto_mac_option',
    'Mac_auto_mac_option',
    'Mac_auto_mac_Stmt',
    'LineEndOpt',
    'LineEndOpt',
    'SuperlongStmt',
    'MultipleLineApduDataList',
    'MultipleLineApduDataList',
    'SuperlongStmt',
    'CompareStmt',
    'Socket_messageStmt',
    'GenerateStmt',
    'SendtextStmt',
    'PushStmt',
    'GotoStmt'
     ];

static const int numRuleNames  = 240;

static const bool isValidForParser = true;
}
